/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Server;

import Client.Message;
import java.util.ArrayList;
import java.util.List;

/**
 *Clase Servidor de correo.
 * se encarga de realizar el procesamiento de los correos enviados por 
 * los clientes.
 * @author Devys
 */
public class MailServer {

    private List<Message> Mensajes;
    
    /**
     * Constructor por defecto.
     * Se encarga de crear la lista de mensajes en espera vacía.
     */
    public MailServer() {
        Mensajes=new ArrayList<Message>(); 
    }
    
    /**
     * Funcion que se encarga de retornar la cantidad de mensajes que un usuario ha recibido
     * como destinatario.
     * @param name el nombre del usuario a consultar.
     * @return c - cantidad de mensajes recibidos.
     */
    public int getMessagesWaiting(String name){
        int c=0;
        for (int i=0;i<Mensajes.size();i++){
            if (Mensajes.get(i).getNombre_Destinatorio()==name){
                c++;
            }
        }
        return c;
    }
    
    /**
     * Funcion que se encarga de retornar el primer mensaje no leido que ha recibido el 
     * usuario
     * @param name nombre del usuario.
     * @return Message - el primer mensaje no leido del usuario.
     */
    public Message getNextMessage(String name){
        Message m=null;
        for(int i=0;i<Mensajes.size();i++){
            if (Mensajes.get(i).getNombre_Destinatorio()==name){
                m=Mensajes.get(i);
                if (m.isLeido()==false){
                    m.leer();
                    return m;
                }
            }
        }
        return m;
    }
    
    /**
     * Metodo que se encarga de recibir el mensaje enviado por un cliente y almacenarlo en
     * la lista de mensajes en espera para luego ser remitido al destinatario.
     * @param message el mensaje a ser almacenado.
     */
    public void post(Message message){
        Mensajes.add(message);
    }
}
